package ahblue.cn.tanzi.util;

import android.content.Context;
import android.os.CountDownTimer;
import android.widget.TextView;

import ahblue.cn.tanzi.R;

/**
 * 倒计时，60秒
 */
public class CodeCountTimer extends CountDownTimer {
    public static final int TIME_COUNT = 60000;
    private TextView btn;
    private int endStrRid;
    private Context context;

    /**
     * 参数 millisInFuture         倒计时总时间（如60S，120s等）
     * 参数 countDownInterval    渐变时间（每次倒计1s）
     *  
     *         * 参数 btn               点击的按钮(因为Button是TextView子类，为了通用我的参数设置为TextView）
     *  
     *         * 参数 endStrRid   倒计时结束后，按钮对应显示的文字
     */
    public CodeCountTimer(Context context, long millisInFuture, long countDownInterval, TextView btn, int endStrRid) {
        super(millisInFuture, countDownInterval);
        this.btn = btn;
        this.endStrRid = endStrRid;
        this.context = context;
    }

    public CodeCountTimer(Context context, TextView btn) {
        super(TIME_COUNT, 1000);
        this.context = context;
        this.btn = btn;
    }

    /**
     * 计时完毕时触发
     */
    @Override
    public void onFinish() {
        btn.setTextColor(context.getResources().getColor(R.color.black));
        btn.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.strock_code_black_bg));
        btn.setText(context.getString(R.string.get_code_start));
        btn.setEnabled(true);
    }

    /**
     * 计时过程显示
     */
    @Override
    public void onTick(long millisUntilFinished) {
        btn.setTextColor(context.getResources().getColor(R.color.grey_e5e5));
        btn.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.strock_code_gray_bg));
        btn.setEnabled(false);
        btn.setText(context.getString(R.string.restart_get_auth_code, millisUntilFinished / 1000));
    }

    /**
     * 计时过程显示
     */
    public void stop() {
        onFinish();
        cancel();
    }
}